package com.link2room.rodimus.facade;

import com.link2room.common.dto.param.base.BaseL2rParamDto;
import com.link2room.common.dto.param.base.BaseParamDto;
import com.link2room.common.jpa.result.QueryResult;
import com.link2room.rodimus.dto.param.api.SignInCalendarApiParamDto;
import com.link2room.rodimus.dto.param.api.SignInDrawAwardParamDto;
import com.link2room.rodimus.dto.param.api.SignInReissueParamDto;
import com.link2room.rodimus.dto.param.base.*;

/**
 * Created by LN on 2018/1/3
 */
public interface ISignInApiFacadeService {
    /**
     * 签到
     */
    void doSignNowDay() throws Exception;

    /**
     * 是否签到
     * @return
     */
    String isSign() throws Exception;

    /**
     * 签到日历
     * @return
     */
    QueryResult<SignInCalendarDto> signInCalendar(SignInCalendarApiParamDto paramDto) throws Exception;

    /**
     * 补签
     * @param paramDto
     */
    void reissue(SignInReissueParamDto paramDto) throws Exception;

    /**
     * 当前会员签到日期
     * @return
     */
    SignInCurrentUserReissueTimesDto signInCurrentUserReissueTimes() throws Exception;

    /**
     * 当前奖励列表
     * @return
     */
    QueryResult<SignInAwardDto> currentAwards(BaseParamDto paramDto) throws Exception;

    /**
     * 每日奖励
     * @param paramDto
     * @return
     * @throws Exception
     */
    SignInAwardDto currentEveryDayAwards(BaseParamDto paramDto) throws Exception;

    /**
     * 领取奖励
     * @param awardParamDto
     */
    void drawAward(SignInDrawAwardParamDto awardParamDto) throws Exception;

    /**
     * 当前活动详情
     * @param paramDto
     * @return
     */
    SignInBaseDto currentActivityInfo(BaseL2rParamDto paramDto) throws Exception;

    /**
     * 当前用户分享详情
     * @return
     */
    QueryResult<SignInReissueDetailShareDto> currentUserShareDetails() throws Exception;
}
